// let a = { b: '222', c: 'ddd', j: { k: 'ggg'} }
// console.log(Object.keys(a));
// console.log(Object.values(a));
// let b = Object.assign(a); //浅拷贝
// let c = JSON.parse(JSON.stringify(a)); //深拷贝
// b.j.k = 'hhh';
// console.log(a);
// console.log(b);
// console.log(c);

// for (let key in a) {
//   console.log(key);
//   console.log(a[key]);
// }

// const arr = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]];

// console.log(arr.flat(Infinity));

function buildTree(replies) {
  const tree = [];
  const map = {};

  // 初始化map，用于快速查找每个回复
  replies.forEach((reply) => {
    map[reply.id] = { ...reply, children: [] };
  });

  // 构建树形结构
  replies.forEach((reply, index) => {
    const parent = map[reply.parent];
    if (parent) {
      // 如果reply有parent，则将其添加到parent的children中
      // 这个巧妙的使用的了 对象的引用，而不是复制，所以修改parent.children，map[reply.id]也会改变
      parent.children.push(map[reply.id]);
    } else {
      // 如果没有parent（即parent为0），则将其添加到树的根级别
      console.log("第" + index + "次", tree);
      tree.push(map[reply.id]);
    }
  });

  return tree;
}

const replies = [
  { id: 1, content: "1. 真理惟一可靠的标准就是永远自相符合", parent: 0 },
  { id: 2, content: "2. 我需要三件东西：爱情友谊和图书", parent: 0 },
  { id: 3, content: "2-1 时间是一切财富中最宝贵的财富", parent: 2 },
  {
    id: 4,
    content:
      "2-2 我读的书愈多，就愈亲近世界，愈明了生活的意义，愈觉得生活的重要",
    parent: 2,
  },
  { id: 5, content: "2-1-1 任何事物都是在不断变化的", parent: 3 },
  { id: 6, content: "2-1-2 真正的科学家应当是个幻想家", parent: 3 },
  { id: 7, content: "3. 难得糊涂，耳不闻人之非，不信谣，不传谣", parent: 0 },
];

const tree = buildTree(replies);
// console.log(tree);
console.log(JSON.stringify(tree, null, 2));

// let ge = { a: 'sfa' }
// let array = []
// array.push(ge)
// array[0].a = 'sdf'
// console.log(ge);